﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Marmat.Forms.Skin
{
    partial class TreeView
    {
        /// <summary>
        /// 在选中树节点复选框前发生。
        /// </summary>
        [CategoryAttribute("行为")]
        [Description("当将要选中或取消选树节点上的复选框时发生。")]
        public event TreeViewCancelEventHandler BeforeCheck;

        /// <summary>
        /// 在选中树节点复选框后发生。
        /// </summary>
        [Category("行为")]
        [Description("当已选中或取消选中树节点上的复选框时发生。")]
        public event TreeViewEventHandler AfterCheck;

        /// <summary>
        /// 在折叠树节点前发生。
        /// </summary>
        [Category("行为")]
        [Description("在将要折叠节点时发生。")]
        public event TreeViewCancelEventHandler BeforeCollapse;

        /// <summary>
        /// 在折叠树节点后发生。
        /// </summary>
        [Category("行为")]
        [Description("在折叠树节点后发生。")]
        public event TreeViewEventHandler AfterCollapse;

        /// <summary>
        /// 在展开树节点前发生。
        /// </summary>
        [Category("行为")]
        [Description("在将要展开节点时发生。")]
        public event TreeViewCancelEventHandler BeforeExpand;

        /// <summary>
        /// 在展开树节点后发生。
        /// </summary>
        [Category("行为")]
        [Description("在节点展开后发生。")]
        public event TreeViewEventHandler AfterExpand;

        /// <summary>
        /// 发生时 System.Windows.Forms.TreeView 绘制和 System.Windows.Forms.TreeView.DrawMode
        /// 属性设置为 System.Windows.Forms.TreeViewDrawMode 值而不 System.Windows.Forms.TreeViewDrawMode.Normal。
        /// </summary>
        [Category("行为")]
        [Description("当需要绘制节点时,在所有者描述模式下发生。")]
        public event DrawTreeNodeEventHandler DrawNode;

        /// <summary>
        /// 当需要策略节点矩形大小时,在所有者描述模式下发生。
        /// </summary>
        [Category("行为")]
        [Description("当需要策略节点矩形大小时,在所有者描述模式下发生。")]
        public event MeasureNodeEventHandler MeasureNode;

        ///// <summary>
        ///// 当用户开始拖动节点时发生。
        ///// </summary>
        //[Category("CatAction")]
        //[Description("ListViewItemDragDescr")]
        //public event ItemDragEventHandler ItemDrag;

        /// <summary>
        /// 当鼠标悬停时发生 System.Windows.Forms.TreeNode。
        /// </summary>
        [Category("操作")]
        [Description("当鼠标悬停在TreeNode上时发生。")]
        public event TreeNodeMouseHoverEventHandler NodeMouseHover;

        /// <summary>
        /// 在选定树节点前发生。
        /// </summary>
        [Category("行为")]
        [Description("在将要更改选定内容时发生。")]
        public event TreeViewCancelEventHandler BeforeSelect;

        /// <summary>
        /// 在选定树节点后发生。
        /// </summary>
        [Category("行为")]
        [Description("在更改选定内容后发生。")]
        public event TreeViewEventHandler AfterSelect;

        ///// <summary>
        ///// 发生时 System.Windows.Forms.TreeView 绘制。
        ///// </summary>
        //[Browsable(false)]
        //[EditorBrowsable(EditorBrowsableState.Never)]
        //public event PaintEventHandler Paint;

        /// <summary>
        /// 当用户使用鼠标单击 System.Windows.Forms.TreeNode 时发生。
        /// </summary>
        [Category("行为")]
        [Description("用鼠标单击节点时发生。")]
        public event TreeNodeMouseClickEventHandler NodeMouseClick;

        /// <summary>
        /// 当用户双击时发生 System.Windows.Forms.TreeNode 使用鼠标。
        /// </summary>
        [Category("行为")]
        [Description("鼠标击节点时发生。")]
        public event TreeNodeMouseClickEventHandler NodeMouseDoubleClick;
    }
}
